DALI: An Untyped, CBV Functional Language Supporting First-Order Datatypes with Binders

نویسندگان

  • Emir Pašalić
  • Tim Sheard
  • Walid Taha
چکیده

Writing (meta-)programs that manipulate other (object-) programs poses signi cant technical problems when the objectlanguage itself has a notion of binders and variable occurrences. Higher-order abstract syntax is a representation of object programs that has recently been the focus of several studies. This paper points out a number of limitations of using higher order syntax in a functional context, and argues that DALI, a language based on a simple and elegant proposal made by Dale Miller ten years ago can provide superior support for manipulating such object-languages. Miller's original proposal, however, did not provide any formal treatment. To ll this gap, we present both a big-step and a reduction semantics for DALI, and summarize the results of our extensive study of the semantics, including the rather involved proof of the soundness of the reduction semantics with respect to the big-step semantics. Because our formal development is carried out for the untyped version of the language, we hope it will serve as a solid basis for investigating type system(s) for DALI.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Nested Datatypes with Generalized Mendler Iteration: Map Fusion and the Example of the Representation of Untyped Lambda Calculus with Explicit Flattening

Nested datatypes are families of datatypes that are indexed over all types such that the constructors may relate different family members. Moreover, the argument types of the constructors refer to indices given by expressions where the family name may occur. Especially in this case of true nesting, there is no direct support by theorem provers to guarantee termination of functions that traverse...

متن کامل

Call-by-Value Termination in the Untyped lambda-Calculus

A fully-automated algorithm is developed able to show that evaluation of a given untyped λ-expression will terminate under CBV (call-by-value). The “size-change principle” from first-order programs is extended to arbitrary untyped λ-expressions in two steps. The first step suffices to show CBV termination of a single, stand-alone λexpression. The second suffices to show CBV termination of any m...

متن کامل

Some Domain Theory and Denotational Semantics in Coq

We present a Coq formalization of constructive ω-cpos (extending earlier work by Paulin-Mohring) up to and including the inverselimit construction of solutions to mixed-variance recursive domain equations, and the existence of invariant relations on those solutions. We then define operational and denotational semantics for both a simplytyped CBV language with recursion and an untyped CBV langua...

متن کامل

Conversion by Evaluation

We show how testing convertibility of two types in dependently typed systems can advantageously be implemented instead untyped normalization by evaluation, thereby reusing existing compilers and runtime environments for stock functional languages, without peeking under the hood, for a fast yet cheap system in terms of implementation effort. Our focus is on performance of untyped normalization b...

متن کامل

Primitive Direcursion and Difunctorial Semantics of Typed Object Calculus

This thesis concerns two closely related lines of research: (i) We contribute to the semantics of typed object calculus by giving (a) a denotational semantics using partial maps making use of an algebraic compactness assumption on the ambient category, (b) a notion of “wrappers” by which algebraic datatypes can be represented as object types, and (c) proofs of computational soundness and adequa...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2005